#ifndef CAPPSTATEMENU_H_INCLUDED
#define CAPPSTATEMENU_H_INCLUDED

#include "CAppState.h"
#include "CSurface.h"
#include "CFont.h"
#include <vector>

#define MM_PLAY 0
#define MM_HIGH 1
#define MM_QUIT 2

#include "CButton.h"
#include "CFont.h"
#include "CScore.h"

class CAppStateMenu : public CAppState {
    private:
        static CAppStateMenu Instance;

        SDL_Surface*    Surf_BG;
        SDL_Surface*    Surf_Bubble;

        TTF_Font*       Font;

        int             StartTime;

        std::vector<CButton> DataButton;
        int             hot;

    private:
        CAppStateMenu();

    public:
        void OnMouseMove(int mX, int mY, int relX, int relY, bool Left,bool Right,bool Middle);

        void OnLButtonDown(int mX, int mY);

        void OnKeyDown(SDLKey sym, SDLMod mod, Uint16 unicode);

    public:
        void SelectButton(int dir);

    public:
        void OnActivate();

        void OnDeactivate();

        void OnLoop();

        void OnRender(SDL_Surface* Surf_Display);

    public:
        static CAppStateMenu* GetInstance();
};


#endif // CAPPSTATEMENU_H_INCLUDED
